#pragma once
#include "Message.hpp"

namespace walker_sm
{
	template <class T>
	class State
	{
	public:
		virtual ~State() { }
		virtual void Enter(T* entity) { }
		virtual void Excute(T* entity)=0;
		virtual void Exit(T* entity) { }
		virtual bool HandleMessage(T* entity, const Message& msg)=0;
	};
}

